package com.cskaoyan.javase.other._1packaging;

/**
 * 在使用包装类型时,有时需要比较大小/相等
 * 这时如果你的需求是比较包装类型中数值的大小,请使用equals方法比较
 * 不要使用"=="
 *
 * 所有的整型包装类型都会使用缓存,当创建的对象的取值范围在一个byte[-128,127]内时,会共享缓存中的对象
 * 这时,"=="连接返回true
 * 而如果不在byte范围内,会new对象,"=="连接返回false
 *
 * @since 11:41
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo5 {
    public static void main(String[] args) {
        Integer a = 100;
        Integer b = 100;
        // true,说明a和b指向同一个Integer对象
        System.out.println(a == b);
        System.out.println(a.equals(b));

        Integer c = 200;
        Integer d = 200;
        // false,说明c和d指向不同的Integer对象
        System.out.println(c == d);
        System.out.println(c.equals(d));

        Long a1 = 127L;
        Long a2 = 127L;
        System.out.println(a1 == a2);

        Long a3 = 128L;
        Long a4 = 128L;
        System.out.println(a3 == a4);
    }
}
